Generally described, computing devices and communication networks can be utilized to exchange information. In a common application, a computing device can request content from another computing device via the communication network. For example, a user at a personal computing device can utilize a software application process, typically referred to as a browser, to request a Web page from a server computing device via the Internet. In such embodiments, the user computing device can be referred to as a client computing device, and the server computing device can be referred to as a content provider.
With reference to an illustrative example, a requested Web page, or network resources, may be associated with a number of resources that are processed by a client computing device, such as images, text, graphics, script files and the like. Script files are typically encoded as source code in a computing language, such as JavaScript, that may be compiled by a browser or other software process into computer-executable instructions. These computer-executable instructions, when executed by the client computing device, may generate or cause changes to the content displayed with the Web page. Script files may be embedded in a Web page, or may be contained in a separate file and identified by a number of embedded resource identifiers, such as uniform resource locators (“URLs”).
Once the client computing device obtains the Web page and associated script files, the content may be processed in a number of stages by the software browser application or other client computing device interface. For example, and with reference to the above illustration, the browser may parse the Web page to process various Hypertext Markup Language (“HTML”) layout information and references to associated resources, may identify and process Cascading Style Sheets (“CSS”) information, may process and instantiate various JavaScript code associated with the Web page, may construct a native object model to represent one or more components of the Web page, and may calculate various layout and display properties of the processed content for presentation to a user.
From the perspective of a user utilizing a client computing device, a user experience can be defined in terms of the performance and latencies associated with obtaining a Web page, processing embedded resource identifiers, compiling and executing script files, and rendering content on the client computing device. Latencies and performance limitations of any of the above processes may diminish the user experience. Additionally, latencies and inefficiencies may be especially apparent on computing devices such as netbooks, tablets, smartphones, and the like, which may have limited resources in terms of processing power, memory, or network connectivity.